package com.xqboss.apps.vo.user;

import com.xqboss.apps.enums.market.UserBoxNftStatusEnum;
import com.xqboss.apps.enums.nft.NftTypeEnum;
import com.xqboss.apps.enums.nft.UserNftStatusEnum;
import com.xqboss.apps.enums.user.UserNftSourceTypeEnum;
import com.xqboss.apps.vo.equipment.EquipmentInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * APP NFT 信息
 * @author Trent
 * @date 2023/8/24
 */
@Data
@ApiModel
public class UserNFTItemVo {

    @ApiModelProperty("用户藏品ID")
    private Long userNftId;
    @ApiModelProperty("藏品ID")
    private Long nftId;
    @ApiModelProperty("藏品来源")
    private UserNftSourceTypeEnum source;
    @ApiModelProperty("藏品编号ID")
    private Long nftNumberId;
    @ApiModelProperty("藏品编号值")
    private String nftNumberValue;
    @ApiModelProperty("藏品图片")
    private String mainImg;
    @ApiModelProperty("背景图片")
    private String bgimg;
    @ApiModelProperty("藏品名称")
    private String title;
    @ApiModelProperty("藏品类型")
    private NftTypeEnum nftType;
    @ApiModelProperty("藏品状态")
    private UserNftStatusEnum nftStatus;
    @ApiModelProperty("箱子藏品状态")
    private UserBoxNftStatusEnum boxNftStatus;
    @ApiModelProperty("藏品描述")
    private String description;
    @ApiModelProperty("藏品一级分类")
    private String pcName;
    @ApiModelProperty("藏品二级分类")
    private String categoryName;

    @ApiModelProperty("藏品作者ID")
    private Long authorId;
    @ApiModelProperty("藏品作者名称")
    private String authorName;
    @ApiModelProperty("藏品作者头像")
    private String authorHeadimg;

    @ApiModelProperty("藏品发行方Id")
    private Long publishId;
    @ApiModelProperty("藏品发行方名称")
    private String publishName;
    @ApiModelProperty("藏品发行方头像")
    private String publishHeadimg;

    @ApiModelProperty("获得时间")
    private LocalDateTime createTime;

    @ApiModelProperty("装备信息")
    private EquipmentInfoVo equipment;

    @ApiModelProperty("是否开启转卖")
    private Boolean isResell;

    @ApiModelProperty("当前是否在打卡时段")
    private Boolean isPunchTime = false;

    @ApiModelProperty("总发放量")
    private Integer totalStock;

    @ApiModelProperty("合约地址")
    private String contract;

    @ApiModelProperty("流通量")
    private Integer circulatingSupply;

    @ApiModelProperty("是否锁定 0否1是")
    private Integer isLock;

    @ApiModelProperty("是否可熔炼（1是0否）")
    private Integer isSmelt;

}
